package com.dykj.fireFighting.api.base.dev.service;


import com.dykj.fireFighting.api.base.bigdata.device.vo.DevHisVo;
import com.dykj.fireFighting.api.base.dev.entity.DevHis;
import com.dykj.fireFighting.api.base.dev.entity.vo.FaultVo;
import com.dykj.fireFighting.api.base.dev.entity.vo.FireVo;
import com.dykj.fireFighting.api.base.dev.vo.RateVo;
import com.dykj.fireFighting.common.core.service.IBaseService;

import java.util.HashMap;
import java.util.List;

/**
 * 火灾自动报警设备运行记录
 *
 * @Author LJJ
 * @Date 2021-06-30 14:45:09
 */
public interface IDevHisService extends IBaseService<DevHis> {

    int getFireNum(String id);

    int getCurrentFireNum(String id);

    int getUpFireNum(String s);

    int getCenterFireNum(List<String> ids,String beginTime,String endTime);

    int getCenterCurrentFire(List<String> ids);

    int getCenterUpFire(List<String> ids);

    /**
     * 报警趋势统计
     *
     * @param unitId
     * @return
     */
    List<DevHisVo> queryPoliceStatistical(String unitId);

    /**
     * 高发时段统计
     *
     * @param unitId
     * @return
     */
    List<DevHisVo> queryRateStatistical(String unitId);

    int getFireByTime(String s, String beginTime, String endTime);

    /**
     * 已经复核总数
     * @param params
     * @return
     */
    int getAlreadyReviewCount(HashMap<String, Object> params);

    /**
     * 有效复核数
     * @param params
     * @return
     */
    int getEffectCount(HashMap<String, Object> params);

    /**
     * 监控中心下故障数
     * @param ids
     * @return
     */
    int getCenterFaultNum(List<String> ids,String beginTime, String endTime);

    /**
     * 监控中心下已查看火警列表
     * @param ids
     * @param beginTime
     * @param endTime
     * @return
     */
    List<FireVo> getViewedFireList(List<String> ids, String beginTime, String endTime);

    List<RateVo> getMonthRate(HashMap<String, Object> params);

    /**
     * 监控中心下社会单位故障数排名列表
     * @param ids
     * @param beginTime
     * @param endTime
     * @return
     */
    List<FaultVo> getFaultList(List<String> ids, String beginTime, String endTime);

    /**
     * 故障总数
     * @param id
     * @param beginTime
     * @param endTime
     * @return
     */
    int countFaultByTime(String id, String beginTime, String endTime, String tableName);

    /**
     * 获取时间段内火警数量
     * @param unitId
     * @param beginDate
     * @param endDate
     * @return
     */
    int getUnitNum(String unitId, String beginDate, String endDate, String tableName);

    List<FireVo> getNewList(String tableName,String s,Integer read);
}

